package ar.edu.utn.frgp.labtec.dao;

import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.criterion.Restrictions;
import ar.edu.utn.frgp.labtec.constants.DBParametersConstants;
import ar.edu.utn.frgp.labtec.entities.Departamento;
import ar.edu.utn.frgp.labtec.entities.EstadoEnum;

public class DepartamentoDao extends DefaultGenericDao implements GenericDao<Departamento> {

	public void create(Departamento obj) {
		Session session = hibernateTemplate.getSessionFactory().getCurrentSession();
		session.save(obj);
	}

	public void delete(Departamento obj) {
		Session session = hibernateTemplate.getSessionFactory().getCurrentSession();
		obj.setEstado(EstadoEnum.I);
		session.update(obj);
	}

	
	@SuppressWarnings("unchecked")
	public List<Departamento> getAll() {
		
		Session session = hibernateTemplate.getSessionFactory().getCurrentSession();
		Criteria criteria = session.createCriteria(Departamento.class);
		criteria.add(Restrictions.eq(DBParametersConstants.ESTADO,
				EstadoEnum.H));

		return (List<Departamento>) criteria.list();	
	}

	public void update(Departamento obj) {
		Session session = hibernateTemplate.getSessionFactory().getCurrentSession();
		session.update(obj);
	}
	
	public Departamento getDepartamento(String cod) {
		
		Session session = hibernateTemplate.getSessionFactory().getCurrentSession();
		Departamento departamento =  (Departamento) session.get(Departamento.class, cod);
		
		return departamento;	
	}

}
